home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 172butl.zip / RCFG172A.ZIP / RECONFIG.BAS next >
BASIC Source File  |  1989-05-24  |  47KB  |  1,338 lines

  1.    DECLARE FUNCTION StrTok$(Source$,Delim$)
  2.    DECLARE SUB box (ybox%, xbox%, boxrows%, boxcols%, style%)   'draw a box
  3.    DEFINT A-Z
  4.    CLEAR
  5.    CLS
  6.    DIM FILES.FUNCTION(8)                         ' file menu security
  7.    DIM GLOBAL.FUNCTION(4)                        ' Global commands security
  8.    DIM HELP$(9)                                  ' Help file names
  9.    DIM LIBRARY.FUNCTION(7)                       ' Library commands security
  10.    DIM MAIN.FUNCTION(18)                         ' Main menu security
  11.    DIM MENU$(6)                                  ' Menu file names
  12.    DIM SYSOP.FUNCTION(7)                         ' Sysop menu security
  13.    DIM DNLD$(99)                                 ' Download Sub-Dirs
  14.    DIM UTILITY.FUNCTION(12)                      ' Utility menu security
  15.    KEY OFF
  16.    LOCATE ,,0
  17.    FALSE = 0
  18.    TRUE  = NOT FALSE
  19.    VER$ = "14.1D 15.1A 15.1B 15.1C 16.1A 17.1A 17.1B 17.1C 17.1D" ' KG0524
  20.    PARMS = FALSE
  21.  
  22.    IF COMMAND$ = "" THEN _
  23.       GOTO COPYRIGHT
  24.    PARMS = 1
  25.    DELIM$ = " "
  26.    INPUT.FILENAME$ = STRTOK$(COMMAND$,DELIM$)
  27.    IF INPUT.FILENAME$ = "" THEN _
  28.       GOTO COPYRIGHT
  29.    INPUT.VERSION$ = STRTOK$("",DELIM$)
  30.    IF LEN(INPUT.VERSION$) <> 5 THEN _
  31.       GOTO COPYRIGHT
  32.    INPUT.VERSION$ = UCASE$ (INPUT.VERSION$)                     ' KG0524
  33.    VERSION = INSTR(VER$, INPUT.VERSION$)
  34.    IF VERSION = 0 THEN _
  35.       GOTO COPYRIGHT
  36.    VERSION = INT((VERSION-1)/6)+1
  37.    IF VERSION > 9 THEN _                                   ' KG0524
  38.       VERSION = VERSION - 9                                ' KG0524
  39.    OUTPUT.FILENAME$ = STRTOK$("",DELIM$)
  40.    IF OUTPUT.FILENAME$ = "" THEN _
  41.       GOTO COPYRIGHT
  42.    PARMS = TRUE
  43. '
  44. ' *****************************************************************************
  45. ' *  COPYRIGHT GOES HERE                                                      *
  46. ' *****************************************************************************
  47. '
  48. COPYRIGHT:
  49.    CALL box(1,5,18,69,2)
  50.    FOR I = 2 to 15
  51.       LOCATE I,7
  52.       READ TEMP$
  53.       PRINT TEMP$
  54.       NEXT
  55.    IF PARMS = FALSE THEN _
  56.       LOCATE 17,25: _
  57.       PRINT "Press any key to continue"
  58.    IF PARMS = 1 THEN _
  59.       PARMS = FALSE : _
  60.       LOCATE 17,12 : _
  61.       PRINT "ERROR IN INPUT PARAMETERS -  Press any key to continue"
  62. 120   IF PARMS = FALSE THEN _
  63.    A$ = INKEY$ : _
  64.    IF A$="" GOTO 120 ELSE _
  65.    GOTO 130
  66.    TEMP = (VAL(RIGHT$(TIME$,2))+4) MOD 60
  67.    WHILE VAL(RIGHT$(TIME$,2)) <> TEMP
  68.    WEND
  69. 130   LOCATE 1,1
  70.    FOR I = 3 to 17
  71.       LOCATE I, 6
  72.       PRINT SPACE$(67);
  73.       NEXT I
  74.    LOCATE 4,12
  75.    PRINT "Name of INPUT FILE:"
  76.    LOCATE 5,9
  77.    PRINT "Version of INPUT FILE:"
  78.    LOCATE 6,11
  79.    PRINT "Name of OUTPUT file:"
  80.    IF PARMS = FALSE THEN _
  81.       GOTO 150
  82.    LOCATE 4,32
  83.    PRINT INPUT.FILENAME$
  84.    LOCATE 5,32
  85.    PRINT INPUT.VERSION$
  86.    LOCATE 6,32
  87.    PRINT OUTPUT.FILENAME$
  88.    GOTO 180
  89. '
  90. ' *****************************************************************************
  91. ' * GET THE INPUT FROM THE USER                                               *
  92. ' *****************************************************************************
  93. '
  94. 150   LOCATE 17,10
  95.    PRINT SPACE$(60);
  96.    LOCATE 17,10
  97.    PRINT "Enter the name of your existing RBBS-PC CONFIGURATION FILE"
  98.    LOCATE 4,32
  99.    PRINT SPACE$(40);
  100.    LOCATE 4,31
  101.    INPUT " ", INPUT.FILENAME$
  102.    IF LEN(INPUT.FILENAME$) < 1 THEN _
  103.       PRINT CHR$(7); : _
  104.       GOTO 150
  105. 160   LOCATE 17,10
  106.    PRINT SPACE$(60);
  107.    LOCATE 17,10
  108.    PRINT "Valid versions: 14.1D, 15.1A, 15.1B, 15.1C, 16.1A, 17.1A/B/C/D" ' KG0524
  109.    LOCATE 5,32
  110.    PRINT SPACE$(40);
  111.    LOCATE 5,31
  112.    INPUT " ", INPUT.VERSION$
  113.    IF LEN(INPUT.VERSION$) <> 5 THEN _
  114.       PRINT CHR$(7); : _
  115.       GOTO 160
  116.    INPUT.VERSION$ = UCASE$ (INPUT.VERSION$)                     ' KG0524
  117.    VERSION = INSTR(VER$, INPUT.VERSION$)
  118.    IF VERSION = 0 THEN _
  119.       PRINT CHR$(7); : _
  120.       GOTO 160
  121.    VERSION = INT((VERSION-1)/6)+1
  122.    IF VERSION > 9 THEN _                                       ' KG0524
  123.       VERSION = VERSION - 9                                    ' KG0524
  124. 170   LOCATE 17,10
  125.    PRINT SPACE$(62);                                               ' KG0524
  126.    LOCATE 17,10
  127.    PRINT "Enter the name of the output RBBS-PC Version 17.2A FILE" ' KG0524
  128.    LOCATE 6,32
  129.    PRINT SPACE$(40);
  130.    LOCATE 6,31
  131.    INPUT " ", OUTPUT.FILENAME$
  132.    IF LEN(OUTPUT.FILENAME$) < 1 THEN _
  133.       PRINT CHR$(7); : _
  134.       GOTO 170
  135.    LOCATE 17,10
  136.    PRINT SPACE$(60);
  137. 180   LOCATE 8,9
  138.    INPUT "Is everything correct (Y or N)";QUERY$
  139.    IF INSTR("Yy",LEFT$(QUERY$,1)) < 1 THEN _
  140.    GOTO 150
  141.    ON ERROR GOTO ERROR.HANDLER
  142. 1000  OPEN "I",#1,INPUT.FILENAME$
  143. '
  144. ' *****************************************************************************
  145. ' * READ IN THE PARAMETERS FROM AN EXISTING "RBBS-PC.DEF" FILE                *
  146. ' *****************************************************************************
  147. '
  148. 1010  LOCATE 10,9
  149.       PRINT "READING DATA....";
  150. '
  151. ' *****************************************************************************
  152. ' * READ INPUT FILE                                                           *
  153. ' *****************************************************************************
  154. '
  155. READ.DEF:
  156.    IF VERSION >= 6 THEN _                                 ' KG0524
  157.       INPUT #1,CONFIG.FILE.VER$                           ' KG0524
  158.    INPUT #1,DOWNLOAD.DRIVES$, _
  159.             SYSOP.PASSWORD.1$, _
  160.             SYSOP.PASSWORD.2$, _
  161.             SYSOP.FIRST.NAME$, _
  162.             SYSOP.LAST.NAME$, _
  163.             REQUIRED.RINGS, _
  164.             START.OFFICE.HOURS, _
  165.             END.OFFICE.HOURS, _
  166.             MINUTES.PER.SESSION!, _
  167.             MAX.ALLOWED.MSGS.FRM.DEF, _
  168.             ACT.MNTHS.B4.DELETING, _
  169.             UPLOAD.DIRECTORY$, _
  170.             EXPERT.USER, _
  171.             ACTIVE.BULLETINS, _
  172.             PROMPT.BELL, _
  173.             PCJR, _
  174.             MENUS.CAN.PAUSE, _
  175.             MENU$(1), _
  176.             MENU$(2), _
  177.             MENU$(3), _
  178.             MENU$(4), _
  179.             MENU$(5)
  180.  
  181.    IF VERSION >= 4 THEN _
  182.    INPUT #1,MENU$(6)
  183.  
  184.    INPUT #1,CONFERENCE.MENU$, _
  185.             CONFERENCE.VIEWER.SEC.LVL, _
  186.             WELCOME.INTERRUPTABLE, _
  187.             REMIND.FILE.TRANSFERS, _
  188.             PAGE.LENGTH, _
  189.             MAX.MESSAGE.LINES, _
  190.             DOORS.AVAILABLE, _
  191.             MO$
  192.  
  193.    INPUT #1,MAIN.MESSAGE.FILE$, _
  194.             MAIN.MESSAGE.BACKUP$, _
  195.             CALLERS.FILE$, _
  196.             COMMENTS.FILE$, _
  197.             MAIN.USER.FILE$, _
  198.             WELCOME.FILE$, _
  199.             NEWUSER.FILE$, _
  200.             DIRECTORY.EXTENTION$, _
  201.             COM.PORT$, _
  202.             BULLETINS.OPTIONAL, _
  203.             USER.INIT.COMMAND$, _
  204.             RTS$, _
  205.             DOS.VERSION, _
  206.             FG, _
  207.             BG, _
  208.             BORDER, _
  209.             RBBS.BAT$, _
  210.             RCTTY.BAT$
  211.  
  212.    INPUT #1,OMIT.MAIN.DIRECTORY$, _
  213.             FIRST.NAME.PROMPT$
  214.  
  215.    IF VERSION = 1 THEN _
  216.       INPUT #1,HELP$(1), _
  217.                HELP$(2), _
  218.                HELP$(3), _
  219.                HELP$(4), _
  220.                HELP$(5), _
  221.                HELP$(6), _
  222.                HELP$(7), _
  223.                HELP$(8), _
  224.                HELP$(9)  _
  225.    ELSE _
  226.       INPUT #1,HELP$(3), _
  227.                HELP$(4), _
  228.                HELP$(7), _
  229.                HELP$(9)
  230.  
  231.    INPUT #1,BULLETIN.MENU$, _
  232.             BULLETIN.PREFIX$, _
  233.             DRIVE.FOR.BULLETINS$, _
  234.             MESSAGE.REMINDER, _
  235.             REQUIRE.NON.ASCII, _
  236.             ASK.EXTENDED.DESC, _
  237.             MAXIMUM.NUMBER.OF.NODES, _
  238.             NETWORK.TYPE, _
  239.             RECYCLE.TO.DOS, _
  240.             MAX.USR.FILE.SIZE.FRM.DEF, _
  241.             MAX.MSG.FILE.SIZE.FRM.DEF!, _
  242.             TRASHCAN.FILE$
  243.    INPUT #1,MINIMUM.LOGON.SECURITY, _
  244.             DEFAULT.SECURITY.LEVEL, _
  245.             SYSOP.SECURITY.LEVEL, _
  246.             FILESEC.FILE$, _
  247.             SYSOP.MENU.SECURITY.LEVEL, _
  248.             CONFMAIL.LIST$, _
  249.             MAXIMUM.VIOLATIONS, _
  250.             SYSOP.FUNCTION(1), _
  251.             SYSOP.FUNCTION(2), _
  252.             SYSOP.FUNCTION(3), _
  253.             SYSOP.FUNCTION(4), _
  254.             SYSOP.FUNCTION(5), _
  255.             SYSOP.FUNCTION(6), _
  256.             SYSOP.FUNCTION(7), _
  257.             PASSWORD.FILE$, _
  258.             MAXIMUM.PASSWORD.CHANGES, _
  259.             MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
  260.             OVERWRITE.SECURITY.LEVEL, _
  261.             DOORS.TERMINAL.TYPE, _
  262.             MAX.PER.DAY
  263.    IF VERSION = 1 THEN _
  264.       GOTO READ.DEF.141D.ONLY
  265.  
  266.    INPUT #1,MAIN.FUNCTION(1), _
  267.             MAIN.FUNCTION(2), _
  268.             MAIN.FUNCTION(3), _
  269.             MAIN.FUNCTION(4), _
  270.             MAIN.FUNCTION(5), _
  271.             MAIN.FUNCTION(6), _
  272.             MAIN.FUNCTION(7), _
  273.             MAIN.FUNCTION(8), _
  274.             MAIN.FUNCTION(9), _
  275.             MAIN.FUNCTION(10), _
  276.             MAIN.FUNCTION(11), _
  277.             MAIN.FUNCTION(12), _
  278.             MAIN.FUNCTION(13), _
  279.             MAIN.FUNCTION(14), _
  280.             MAIN.FUNCTION(15), _
  281.             MAIN.FUNCTION(16), _
  282.             MAIN.FUNCTION(17)
  283.  
  284.    IF VERSION >= 4 THEN _
  285.       INPUT #1,MAIN.FUNCTION(18)
  286.  
  287.    IF VERSION < 5 THEN _
  288.       INPUT #1,DUMMY$ _
  289.    ELSE _
  290.       INPUT #1,MIN.NEWCALLER.BAUD
  291.  
  292.    INPUT #1,WAIT.BEFORE.DISCONNECT, _
  293.             FILES.FUNCTION(1), _
  294.             FILES.FUNCTION(2), _
  295.             FILES.FUNCTION(3), _
  296.             FILES.FUNCTION(4)
  297.    IF VERSION >= 5 THEN _
  298.    INPUT #1,FILES.FUNCTION(5)
  299.  
  300.    INPUT #1,FILES.FUNCTION(6), _
  301.             FILES.FUNCTION(7), _
  302.             FILES.FUNCTION(8), _
  303.             UTILITY.FUNCTION(1), _
  304.             UTILITY.FUNCTION(2)
  305.    IF VERSION >= 5 THEN _
  306.    INPUT #1,UTILITY.FUNCTION(3)
  307.  
  308.    INPUT #1,UTILITY.FUNCTION(4), _
  309.             UTILITY.FUNCTION(5), _
  310.             UTILITY.FUNCTION(6), _
  311.             UTILITY.FUNCTION(7), _
  312.             UTILITY.FUNCTION(8), _
  313.             UTILITY.FUNCTION(9), _
  314.             UTILITY.FUNCTION(10), _
  315.             UTILITY.FUNCTION(11), _
  316.             UTILITY.FUNCTION(12), _
  317.             GLOBAL.FUNCTION(1), _
  318.             GLOBAL.FUNCTION(2), _
  319.             GLOBAL.FUNCTION(3), _
  320.             GLOBAL.FUNCTION(4), _
  321.             UPLOAD.TIME.FACTOR!, _
  322.             COMPUTER.TYPE, _
  323.             REMIND.PROFILE, _
  324.             RBBS.NAME$, _
  325.             COMMANDS.BETWEEN.RINGS, _
  326.             MNP.SUPPORT, _
  327.             PAGING.PRINTER.SUPPORT$, _
  328.             MODEM.INIT.BAUD$
  329.    INPUT #1,TURN.PRINTER.OFF, _
  330.             DIRECTORY.PATH$, _
  331.             MIN.SEC.TO.VIEW, _
  332.             LIMIT.SEARCH.TO.FMS, _
  333.             DEFAULT.CATEGORY.CODE$, _
  334.             DIR.CATEGORY.FILE$, _
  335.             NEW.FILES.CHECK, _
  336.             MAX.DESC.LEN, _
  337.             SHOW.SECTION, _
  338.             COMMANDS.IN.PROMPT, _
  339.             NEWUSER.SETS.DEFAULTS, _
  340.             HELP.PATH$, _
  341.             HELP.EXTENSION$, _
  342.             MAIN.COMMANDS$, _
  343.             FILE.COMMANDS$, _
  344.             UTIL.COMMANDS$, _
  345.             GLOBAL.COMMANDS$, _
  346.             SYSOP.COMMANDS$
  347.    IF VERSION >= 4 THEN _
  348.    INPUT #1,RECYCLE.WAIT, _
  349.             LIBRARY.FUNCTION(1), _
  350.             LIBRARY.FUNCTION(2), _
  351.             LIBRARY.FUNCTION(3), _
  352.             LIBRARY.FUNCTION(4), _
  353.             LIBRARY.FUNCTION(5), _
  354.             LIBRARY.FUNCTION(6), _
  355.             LIBRARY.FUNCTION(7), _
  356.             LIBRARY.DRIVE$, _
  357.             LIBRARY.DIRECTORY.PATH$, _
  358.             LIBRARY.DIRECTORY.EXTENTION$, _
  359.             LIBRARY.WORK.DISK.PATH$, _
  360.             LIBRARY.MAX.DISK, _
  361.             LIBRARY.MAX.DIRECTORY, _
  362.             LIBRARY.MAX.SUBDIR, _
  363.             LIBRARY.SUBDIR.PREFIX$, _
  364.             LIBRARY.ARCHIVE.PATH$, _
  365.             LIBRARY.ARCHIVE.PROGRAM$, _
  366.             LIBRARY.COMMANDS$
  367.  
  368.    INPUT #1,UPLOAD.PATH$, _
  369.             FMS.DIRECTORY$, _
  370.             ANS.MENU$,_
  371.             REQUIRED.QUESTIONNAIRE$,_
  372.             REMEMBER.NEW.USERS, _
  373.             SURVIVE.NOUSER.ROOM, _
  374.             PROMPT.HASH$, _
  375.             START.HASH, _
  376.             LEN.HASH, _
  377.             PROMPT.INDIV$, _
  378.             START.INDIV, _
  379.             LEN.INDIV
  380.    INPUT #1,BYPASS.MSGS, _
  381.             MUSIC, _
  382.             RESTRICT.BY.DATE, _
  383.             DAYS.TO.WARN, _
  384.             DAYS.IN.SUBSCRIPTION.PERIOD, _
  385.             CALLBACK.VERIFICATION, _
  386.             RESTRICT.VALID.CMDS, _
  387.             NEW.USER.DEFAULT.MODE, _
  388.             NEW.USER.LINE.FEEDS, _
  389.             NEW.USER.NULLS, _
  390.             NEW.USER.BELL, _
  391.             NEW.USER.CASE, _
  392.             NEW.USER.MARGINS, _
  393.             WRAP.CALLERS.FILE$, _
  394.             REDIRECT.IO.METHOD, _
  395.             GO.TO.SHELL, _
  396.             HALT.ON.ERROR, _
  397.             NEW.PUBLIC.MSGS.SECURITY, _
  398.             NEW.PRIVATE.MSGS.SECURITY, _
  399.             SECURITY.NEEDED.TO.CHANGE.MSGS, _
  400.             SL.CATEGORIZE.UPLOADS, _
  401.             BAUDOT, _
  402.             TIME.TO.DROP.TO.DOS, _
  403.             EXPIRED.SECURITY, _
  404.             DTR.DROP.DELAY, _
  405.             ASK.IDENTITY, _
  406.             USE.EXTERNAL.XMODEM, _
  407.             BUFFER.SIZE, _
  408.             MLCOM, _
  409.             SHOOT.YOURSELF, _
  410.             F7.MESSAGE$, _
  411.             NEW.USER.DEFAULT.PROTOCOL$, _
  412.             NEW.USER.GRAPHICS$, _
  413.             NET.MAIL$, _
  414.             MASTER.DIRECTORY.NAME$, _
  415.             PROTO.DEF$, _
  416.             UPCAT.HELP$, _
  417.             ALWAYS.STREW.TO$, _
  418.             LAST.NAME.PROMPT$
  419.    GOTO READ.DEF.ALL
  420.  
  421. READ.DEF.141D.ONLY:
  422.    INPUT #1,MAIN.FUNCTION(2), _
  423.             MAIN.FUNCTION(3), _
  424.             MAIN.FUNCTION(4), _
  425.             MAIN.FUNCTION(5), _
  426.             MAIN.FUNCTION(6), _
  427.             GLOBAL.FUNCTION(3), _
  428.             GLOBAL.FUNCTION(1), _
  429.             MAIN.FUNCTION(7), _
  430.             MAIN.FUNCTION(8), _
  431.             MAIN.FUNCTION(9), _
  432.             UTILITY.FUNCTION(6), _
  433.             MAIN.FUNCTION(10), _
  434.             MAIN.FUNCTION(11), _
  435.             MAIN.FUNCTION(14), _
  436.             MAIN.FUNCTION(12), _
  437.             MAIN.FUNCTION(13), _
  438.             MAIN.FUNCTION(15), _
  439.             MAIN.FUNCTION(16), _
  440.             MAIN.FUNCTION(17), _
  441.             GLOBAL.FUNCTION(4), _
  442.             GLOBAL.FUNCTION(2), _
  443.             DEFAULT.MACHINE.TYPE$, _
  444.             WAIT.BEFORE.DISCONNECT
  445.  
  446.    INPUT #1,FILES.FUNCTION(1), _
  447.             FILES.FUNCTION(2), _
  448.             DUMMY,             _
  449.             FILES.FUNCTION(3), _
  450.             FILES.FUNCTION(4), _
  451.             DUMMY,             _
  452.             FILES.FUNCTION(6), _
  453.             FILES.FUNCTION(7), _
  454.             DUMMY,             _
  455.             DUMMY,             _
  456.             UTILITY.FUNCTION(1), _
  457.             UTILITY.FUNCTION(11), _
  458.             UTILITY.FUNCTION(4), _
  459.             UTILITY.FUNCTION(5), _
  460.             DUMMY,             _
  461.             DUMMY,             _
  462.             UTILITY.FUNCTION(7), _
  463.             DUMMY,             _
  464.             UTILITY.FUNCTION(8), _
  465.             DUMMY,             _
  466.             UTILITY.FUNCTION(9), _
  467.             UTILITY.FUNCTION(10), _
  468.             UTILITY.FUNCTION(2), _
  469.             UTILITY.FUNCTION(12), _
  470.             DUMMY,             _
  471.             DUMMY,             _
  472.             UPLOAD.TIME.FACTOR!, _
  473.             COMPUTER.TYPE, _
  474.             REMIND.PROFILE, _
  475.             RBBS.NAME$, _
  476.             COMMANDS.BETWEEN.RINGS, _
  477.             MNP.SUPPORT, _
  478.             PAGING.PRINTER.SUPPORT$, _
  479.             MODEM.INIT.BAUD$
  480.  
  481.    INPUT #1,SYSOP.FUNCTION.KEY1$, _
  482.             SYSOP.FUNCTION.KEY2$, _
  483.             SYSOP.FUNCTION.KEY3$, _
  484.             SYSOP.FUNCTION.KEY4$, _
  485.             SYSOP.FUNCTION.KEY5$, _
  486.             SYSOP.FUNCTION.KEY6$, _
  487.             SYSOP.FUNCTION.KEY7$, _
  488.             SYSOP.FUNCTION.KEY8$, _
  489.             SYSOP.FUNCTION.KEY9$, _
  490.             SYSOP.FUNCTION.KEY10$, _
  491.             SYSOP.FUNCTION.KEY11$, _
  492.             SYSOP.FUNCTION.KEY12$
  493. READ.DEF.ALL:
  494.  
  495.    IF VERSION >= 5 THEN _                                   ' KG0524
  496.    INPUT #1,PERSONAL.DRVPATH$, _
  497.             PERSONAL.DIR$, _
  498.             PERSONAL.BEGIN, _
  499.             PERSONAL.LEN, _
  500.             PERSONAL.PROTOCOL$, _
  501.             PERSONAL.CONCAT, _
  502.             PRIVATE.READ.SEC, _
  503.             PUBLIC.READ.SEC, _
  504.             SEC.CHANGE.MSG, _
  505.             KEEP.INIT.BAUD, _
  506.             MAIN.PUI$, _
  507.             DEFAULT.ECHOER$, _
  508.             HOST.ECHO.ON$, _
  509.             HOST.ECHO.OFF$, _
  510.             SWITCH.BACK, _
  511.             DEFAULT.LINE.ACK$, _
  512.             ALTDIR.EXTENSION$, _
  513.             DIRECTORY.PREFIX$
  514.  
  515.    INPUT #1,SEC.LVL.EXEMPT.FRM.PURGING, _
  516.             MODEM.INIT.WAIT.TIME, _
  517.             MODEM.COMMAND.DELAY.TIME, _
  518.             TURBO.RBBS
  519.    INPUT #1,DNLD.SUB, _
  520.             WILL.SUBDIRS.B.USED, _
  521.             UPLOAD.TO.SUBDIR, _
  522.             DOWNLOAD.TO.SUBDIR, _
  523.             UPLOAD.SUBDIR$
  524.  
  525.    IF VERSION < 5 THEN _
  526.    INPUT #1,RESTRICT.BAUD, _
  527.             USE.COLOR _
  528.    ELSE _
  529.    INPUT #1,MIN.OLDCALLER.BAUD, _
  530.             USE.EXTERNAL.YMODEM
  531.  
  532.    INPUT #1,DISKFULL.GO.OFFLINE, _
  533.             EXTENDED.LOGGING, _
  534.             USER.RESET.COMMAND$, _
  535.             USER.COUNT.RINGS.COMMAND$, _
  536.             USER.ANSWER.COMMAND$, _
  537.             USER.GO.OFFHOOK.COMMAND$, _
  538.             DISK.FOR.DOS$, _
  539.             DUMB.MODEM, _
  540.             COMMENTS.AS.MESSAGES, _
  541.             LSB, _
  542.             MSB, _
  543.             LINE.CONTROL.REGISTER, _
  544.             MODEM.CONTROL.REGISTER, _
  545.             LINE.STATUS.REGISTER, _
  546.             MODEM.STATUS.REGISTER
  547.    IF VERSION >= 5 THEN _                                 ' KG0524
  548.    INPUT #1,KEEP.TIME.CREDITS, _
  549.             XON.XOFF, _
  550.             ALLOW.CALLER.TURBO, _
  551.             USE.DEVICE.DRIVER$, _
  552.             PRELOG$, _
  553.             NEW.USER.QUESTIONNAIRE$, _
  554.             EPILOG$, _
  555.             REGISTRATION.PROGRAM$, _
  556.             QUES.PATH$, _
  557.             USER.LOCATION$, _
  558.             USER.INITIALIZE.COMMAND$, _
  559.             USER.FIRMWARE.CLEAR.CMND$, _
  560.             USER.FIRMWARE.WRITE.CMND$, _
  561.             ENFORCE.UPLOAD.DOWNLOAD.RATIOS, _
  562.             SIZE.OF.STACK, _
  563.             SECURITY.EXEMPT.FROM.EPILOG, _
  564.             USE.BASIC.WRITES, _
  565.             DOSANSI, _
  566.             ESCAPE.INSECURE, _
  567.             USE.DIR.ORDER, _
  568.             ADD.DIR.SECURITY, _
  569.             MAX.EXTENDED.LINES, _
  570.             ORIG.COMMANDS$
  571.  
  572.    IF VERSION >= 6 THEN                                    ' KG0524
  573.    INPUT #1,LOGON.MAIL.LEVEL$, _
  574.                MACRO.DRVPATH$, _
  575.                MACRO.EXTENSION$, _
  576.                EMPHASIZE.ON.DEF$, _
  577.                EMPHASIZE.OFF.DEF$, _
  578.                FG.1.DEF$, _
  579.                FG.2.DEF$, _
  580.                FG.3.DEF$, _
  581.                FG.4.DEF$, _
  582.                SECVIO.HLP$, _
  583.                FOSSIL, _
  584.                MAX.CARRIER.WAIT, _
  585.                CALLER.BKGRD, _
  586.                SMART.TEXT, _
  587.                TIME.LOCK, _
  588.                WRITE.BUF.DEF, _
  589.                SEC.KILL.ANY, _
  590.                DOORS.DEF$, _
  591.                SCREEN.OUT.MSG$, _
  592.                AUTOPAGE.DEF$
  593.    END IF                                                   ' KG0524
  594.    IF DNLD.SUB < 1 OR DNLD.SUB > 99 THEN _
  595.       GOTO CLOSE.IN
  596.    FOR I = 1 TO DNLD.SUB
  597.        INPUT #1,DNLD$(I)
  598.    NEXT
  599.    GOTO CLOSE.IN
  600.  
  601. '
  602. ' *****************************************************************************
  603. ' * CLOSE INPUT FILE                                                          *
  604. ' *****************************************************************************
  605. '
  606. CLOSE.IN:
  607.       CLOSE #1
  608. '
  609. ' *****************************************************************************
  610. ' * INITALIZE ALL VARIABLES THAT DON'T AREADY EXIST                           *
  611. ' *****************************************************************************
  612. '
  613. 1020  LOCATE 11,9
  614.    PRINT "CONVERTING DATA...";
  615.    IF INSTR(MAIN.MESSAGE.FILE$,":") THEN _
  616.       D$ = LEFT$(MAIN.MESSAGE.FILE$,INSTR(MAIN.MESSAGE.FILE$,":")) ELSE _
  617.       D$ = ""
  618.  
  619.    ON VERSION GOTO 2000, 2100, 2200, 2300, 2400, 2500              ' KG0524
  620.    GOTO 2500                                                       ' KG0524
  621. '
  622. ' *****************************************************************************
  623. ' * INITALIZE VARIABLES NOT IN 14.1D                                          *
  624. ' *****************************************************************************
  625. '
  626. 2000  FOR I = 1 TO 9
  627.       IF INSTR(HELP$(I),":") THEN _
  628.          HELP$(I) = MID$(HELP$(I),INSTR(HELP$(I),":")+1)
  629.       NEXT
  630.    ALWAYS.STREW.TO$           = ""
  631.    ANS.MENU$                  = D$ + "MENUA"
  632.    ASK.IDENTITY               = FALSE
  633.    BAUDOT                     = 0
  634.    BUFFER.SIZE                = 128
  635.    BYPASS.MSGS                = FALSE
  636.    CALLBACK.VERIFICATION      = FALSE
  637.    COMMANDS.IN.PROMPT         = TRUE
  638.    DEFAULT.CATEGORY.CODE$     = "UC "
  639.    DAYS.IN.SUBSCRIPTION.PERIOD = 365
  640.    DAYS.TO.WARN               = 60
  641.    DIR.CATEGORY.FILE$         = D$ + "DIR.CAT"
  642.    DIRECTORY.PATH$            = D$
  643.    DTR.DROP.DELAY             = 3
  644.    DUMMY$                     = " "
  645.    EXPIRED.SECURITY           = DEFAULT.SECURITY.LEVEL
  646.    FILE.COMMANDS$             = "DGLNPSUV"
  647.    FILES.FUNCTION(8)          = FILES.FUNCTION(1)
  648.    F7.MESSAGE$                = ""
  649.    GLOBAL.COMMANDS$           = "H?QX"
  650.    GO.TO.SHELL                = TRUE
  651.    HELP.EXTENSION$            = "HLP"
  652.    HELP.PATH$                 = D$
  653.    LEN.HASH                   = 31
  654.    LEN.INDIV                  = 0
  655.    LIMIT.SEARCH.TO.FMS        = FALSE
  656.    MAIN.COMMANDS$             = "ABCDEFIJKOPRSTUVW"
  657.    MAIN.FUNCTION(1)           = DEFAULT.SECURITY.LEVEL
  658.    MAIN.FUNCTION(18)          = 32767
  659.    MASTER.DIRECTORY.NAME$     = ""
  660.    MAX.DESC.LEN               = 40
  661.    MIN.SEC.TO.VIEW            = DEFAULT.SECURITY.LEVEL
  662.    MLCOM                      = FALSE
  663.    MUSIC                      = FALSE
  664.    NET.MAIL$                  = ""
  665.    NEW.FILES.CHECK            = FALSE
  666.    NEWUSER.SETS.DEFAULTS      = TRUE
  667.    NEW.PUBLIC.MSGS.SECURITY   = DEFAULT.SECURITY.LEVEL
  668.    NEW.PRIVATE.MSGS.SECURITY  = DEFAULT.SECURITY.LEVEL
  669.    NEW.USER.DEFAULT.MODE      = 0
  670.    NEW.USER.DEFAULT.PROTOCOL$ = ""
  671.    NEW.USER.GRAPHICS$         = ""
  672.    NEW.USER.LINE.FEEDS        = 0
  673.    NEW.USER.NULLS             = 0
  674.    NEW.USER.BELL              = 0
  675.    NEW.USER.CASE              = 0
  676.    NEW.USER.MARGINS           = 0
  677.    PROMPT.HASH$               = "Name"
  678.    PROMPT.INDIV$              = ""
  679.    REDIRECT.IO.METHOD         = TRUE
  680.    REMEMBER.NEW.USERS         = TRUE
  681.    REQUIRED.QUESTIONNAIRE$    = "NONE"
  682.    RESTRICT.BY.DATE           = FALSE
  683.    RESTRICT.VALID.CMDS        = FALSE
  684.    SECURITY.NEEDED.TO.CHANGE.MSGS = SYSOP.SECURITY.LEVEL
  685.    SHOOT.YOURSELF             = FALSE
  686.    SHOW.SECTION               = TRUE
  687.    SL.CATEGORIZE.UPLOADS      = SYSOP.SECURITY.LEVEL
  688.    START.HASH                 = 1
  689.    START.INDIV                = 0
  690.    SURVIVE.NOUSER.ROOM        = FALSE
  691.    SYSOP.COMMANDS$            = "1234567"
  692.    TIME.TO.DROP.TO.DOS        = 0
  693.    TURN.PRINTER.OFF           = FALSE
  694.    FMS.DIRECTORY$             = ""
  695.    UPCAT.HELP$                = "UPCAT"
  696.    USE.EXTERNAL.XMODEM        = FALSE
  697.    UTIL.COMMANDS$             = "BCEFGLMPRSTU"
  698.    WRAP.CALLERS.FILE$         = ""
  699.    FOR I = 1 TO NUM.GLOBAL
  700.      GLOBAL.FUNCTION(I) = MINIMUM.LOGON.SECURITY
  701.      NEXT
  702.  
  703. '
  704. ' *****************************************************************************
  705. ' * INITALIZE VARIABLES NOT IN 15.1A                                          *
  706. ' *****************************************************************************
  707. '
  708. 2100  RTS$                       = "NO"
  709.  
  710. '
  711. ' *****************************************************************************
  712. ' * INITALIZE VARIABLES NOT IN 15.1B                                          *
  713. ' *****************************************************************************
  714. '
  715.  
  716. 2200  LIBRARY.ARCHIVE.PATH$        = D$
  717.    LIBRARY.ARCHIVE.PROGRAM$     = "ARCA "
  718.    LIBRARY.COMMANDS$            = "ACDGLSV"
  719.    LIBRARY.DIRECTORY.PATH$      = D$
  720.    LIBRARY.DIRECTORY.EXTENTION$ = "CDR"
  721.    LIBRARY.DRIVE$               = ""
  722.    LIBRARY.MAX.DISK             = 705
  723.    LIBRARY.MAX.DIRECTORY        = 7
  724.    LIBRARY.MAX.SUBDIR           = 100
  725.    LIBRARY.SUBDIR.PREFIX$       = "DISK"
  726.    FOR I=1 TO 7
  727.       LIBRARY.FUNCTION(I) = SYSOP.SECURITY.LEVEL
  728.       NEXT
  729.    LIBRARY.WORK.DISK.PATH$      = D$
  730.  
  731.    MAIN.COMMANDS$               = MAIN.COMMANDS$ + "@"
  732.    MENU$(6)                   = D$ + "MENU6"
  733.    RECYCLE.WAIT               = 0
  734.  
  735. '
  736. ' *****************************************************************************
  737. ' * INITALIZE VARIABLES NOT IN 15.1C                                          *
  738. ' *****************************************************************************
  739. '
  740.  
  741. 2300  ALLOW.CALLER.TURBO         = SYSOP.SECURITY.LEVEL
  742.    ALTDIR.EXTENSION$          = ""
  743.    DEFAULT.ECHOER$            = "R"
  744.    DEFAULT.LINE.ACK$          = ""
  745.    DIRECTORY.PREFIX$          = "DIR"
  746.    DOSANSI                    = USE.COLOR
  747.    ENFORCE.UPLOAD.DOWNLOAD.RATIOS = FALSE
  748.    EPILOG$                    = D$ + "EPILOG.DEF"
  749.    IF LEN(FILE.COMMANDS$) < 8 THEN _
  750.    FILE.COMMANDS$ = LEFT$(FILE.COMMANDS$,4) + "P" + _
  751.                    RIGHT$(FILE.COMMANDS$,3)
  752.    FILES.FUNCTION(5)          = SYSOP.SECRUITY.LEVEL
  753.    FIRST.NAME.PROMPT$         = "FIRST name"
  754.    HOST.ECHO.OFF$             = ""
  755.    HOST.ECHO.ON$              = ""
  756.    KEEP.INIT.BAUD             = FALSE
  757.    KEEP.TIME.CREDITS          = FALSE
  758.    LAST.NAME.PROMPT$          = "LAST name"
  759.    MAIN.PUI$                  = D$ + "MAIN.PUI"
  760.    MAX.PER.DAY                = 0
  761.    MENUS.CAN.PAUSE            = TRUE
  762.    MIN.NEWCALLER.BAUD         = 0
  763.    IF RESTRICT.BAUD <> 0 THEN _
  764.       MIN.NEWCALLER.BAUD      = 1200
  765.    MIN.OLDCALLER.BAUD         = 0
  766.    IF RESTRICT.BAUD =TRUE THEN _
  767.       MIN.OLDCALLER.BAUD      = 1200
  768.    NEW.USER.QUESTIONNAIRE$    = D$ + "RBBS-REG.DEF"
  769.    PERSONAL.BEGIN             = 1
  770.    PERSONAL.DIR$              = "PRIV"
  771.    PERSONAL.DRVPATH$          = D$
  772.    PERSONAL.LEN               = 31
  773.    PERSONAL.CONCAT            = FALSE
  774.    PERSONAL.PROTOCOL$         = "N"
  775.    PRELOG$                    = D$ + "PRELOG"
  776.    PRIVATE.READ.SEC           = DEFAULT.SECURITY.LEVEL
  777.    PUBLIC.READ.SEC            = DEFAULT.SECURITY.LEVEL
  778.    QUES.PATH$                 = ""
  779.    REGISTRATION.PROGRAM$      = "NONE"
  780.    SEC.CHANGE.MSG             = SYSOP.SECURITY.LEVEL
  781.    SECURITY.EXEMPT.FROM.EPILOG= DEFAULT.SECURITY.LEVEL + 1
  782.    SIZE.OF.STACK              = 1024
  783.    SWITCH.BACK                = FALSE
  784.    USE.BASIC.WRITES           = FALSE
  785.    USE.DEVICE.DRIVER$         = ""
  786.    USE.EXTERNAL.YMODEM        = FALSE
  787.    USER.FIRMWARE.CLEAR.CMND$  = "AT&F"
  788.    USER.FIRMWARE.WRITE.CMND$  = "&W"
  789.    USER.INITIALIZE.COMMAND$   = "AT&C1&D3B1E0V1M0S0=0&T5"
  790.    USER.LOCATION$             = "CITY and STATE"
  791.    IF LEN(UTIL.COMMANDS$) < 12 THEN _
  792.    UTIL.COMMANDS$ = LEFT$(UTIL.COMMANDS$,2) + "E" + _
  793.                     RIGHT$(UTIL.COMMANDS$,9)
  794.    UTILITY.FUNCTION(3)        = UTILITY.FUNCTION(4)
  795.    XON.XOFF                   = FALSE
  796.  
  797.    MAIN.COMMANDS.DEFAULTS$    = "ABCDEFIJKOPRSTUVW@"
  798.    FILE.COMMANDS.DEFAULTS$    = "DGLNPSUV"
  799.    UTIL.COMMANDS.DEFAULTS$    = "BCEFGLMPRSTU"
  800.    LIBRARY.COMMANDS.DEFAULTS$   = "ACDGLSV"
  801.    GLOBAL.COMMANDS.DEFAULTS$  = "H?QX"
  802.    SYSOP.COMMANDS.DEFAULTS$   = "1234567"
  803.  
  804.    ORIG.COMMANDS$ = MAIN.COMMANDS.DEFAULTS$ + _
  805.                     FILE.COMMANDS.DEFAULTS$ + _
  806.                     UTIL.COMMANDS.DEFAULTS$ + _
  807.                     LIBRARY.COMMANDS.DEFAULTS$ + _
  808.                     GLOBAL.COMMANDS.DEFAULTS$ + _
  809.                     SYSOP.COMMANDS.DEFAULTS$
  810.  
  811. '
  812. ' *****************************************************************************
  813. ' * INITALIZE VARIABLES NOT IN 16.1A                                          *
  814. ' *****************************************************************************
  815. '
  816. 2400 ADD.DIR.SECURITY           = SYSOP.SECURITY.LEVEL
  817.    ASK.EXTENDED.DESC          = SYSOP.SECURITY.LEVEL
  818.    AUTOPAGE.DEF$              = D$ + "AUTOPAGE.DEF"
  819.    CALLER.BKGRD               = 0
  820.    CONFMAIL.LIST$             = D$ + "CONFMAIL.DEF"
  821.    EMPHASIZE.OFF.DEF$         = "[27]" + "[0;40;33m"
  822.    EMPHASIZE.ON.DEF$          = "[27]" + "[1;41;37m"
  823.    ESCAPE.INSECURE            = FALSE
  824.    FG.1.DEF$                  = ""
  825.    FG.2.DEF$                  = ""
  826.    FG.3.DEF$                  = ""
  827.    FG.4.DEF$                  = ""
  828.    FOSSIL                     = 0
  829.    LOGON.MAIL.LEVEL$          = "A"
  830.    LSB                        = 1016
  831.    MACRO.DRVPATH$             = D$
  832.    MACRO.EXTENSION$           = "MCR"
  833.    MAX.CARRIER.WAIT           = 30
  834.    MAX.EXTENDED.LINES         = 2
  835.    PROTO.DEF$                 = D$ + "PROTO.DEF"
  836.    SECVIO.HLP$                = D$ + "SECVIO." + HELP.EXTENSION$
  837.    SMART.TEXT                 = 123
  838.    TIME.LOCK                  = 0
  839.    USE.DIR.ORDER              = TRUE                        ' KG0524
  840.    WRITE.BUF.DEF              = 1024
  841. '
  842. ' *****************************************************************************
  843. ' * INITALIZE VARIABLES NOT IN 17.1A-D                                        *
  844. ' *****************************************************************************
  845. '
  846. 2500 VERSION.NUMBER$          = "17.2A"                       ' KG0524
  847.    AUTO.UPGRADE.SEC           = 0                             ' KG0524
  848.    DEFAULT.EXTENSION$         = "ARC"                         ' KG0524
  849.    DOORS.DEF$                 = D$ + "DOORS.DEF"              ' KG0524
  850.    MAX.REG.SEC                = 0                             ' KG0524
  851.    MAX.WORK.VAR               = 30                            ' KG0524
  852.    MESSAGES.CAN.GROW          = 0                             ' KG0524
  853.    SCREEN.OUT.MSG$            = "SEEN-BY:"                    ' KG0524
  854.    SEC.KILL.ANY               = SYSOP.SECURITY.LEVEL          ' KG0524
  855.    VOICE.TYPE                 = 0
  856. '
  857. ' *****************************************************************************
  858. ' * WRITE OUT THE "RBBS-PC.DEF" FILE WITH THE SYSOP'S SPECIFIED CONFIGURATION *
  859. ' *****************************************************************************
  860. '
  861. 3000  OPEN "O",#1,OUTPUT.FILENAME$
  862.    LOCATE 12,9
  863.    PRINT "WRITING DATA...";
  864.  
  865. 4000  WRITE #1,VERSION.NUMBER$, _
  866.             DOWNLOAD.DRIVES$, _
  867.             SYSOP.PASSWORD.1$, _
  868.             SYSOP.PASSWORD.2$, _
  869.             SYSOP.FIRST.NAME$, _
  870.             SYSOP.LAST.NAME$, _
  871.             REQUIRED.RINGS, _
  872.             START.OFFICE.HOURS, _
  873.             END.OFFICE.HOURS, _
  874.             MINUTES.PER.SESSION!, _
  875.             MAX.ALLOWED.MSGS.FRM.DEF, _
  876.             ACT.MNTHS.B4.DELETING, _
  877.             UPLOAD.DIRECTORY$,_
  878.             EXPERT.USER, _
  879.             ACTIVE.BULLETINS, _
  880.             PROMPT.BELL, _
  881.             PCJR, _
  882.             MENUS.CAN.PAUSE, _
  883.             MENU$(1), _
  884.             MENU$(2), _
  885.             MENU$(3), _
  886.             MENU$(4), _
  887.             MENU$(5), _
  888.             MENU$(6), _
  889.             CONFERENCE.MENU$, _
  890.             CONFERENCE.VIEWER.SEC.LVL, _
  891.             WELCOME.INTERRUPTABLE, _
  892.             REMIND.FILE.TRANSFERS, _
  893.             PAGE.LENGTH, _
  894.             MAX.MESSAGE.LINES, _
  895.             DOORS.AVAILABLE, _
  896.             MO$
  897.    IF INSTR(BULLETIN.MENU$,":") < 1 THEN _
  898.       BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + _
  899.                        BULLETIN.MENU$
  900.    IF INSTR(BULLETIN.PREFIX$,":") < 1 THEN _
  901.       BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + _
  902.                          BULLETIN.PREFIX$
  903.    IF GLOBAL.FUNCTION(3) > MINIMUM.LOGON.SECURITY THEN _
  904.       GLOBAL.FUNCTION(3) = MINIMUM.LOGON.SECURITY
  905.    IF FILES.FUNCTION(2) > MINIMUM.LOGON.SECURITY THEN _
  906.       FILES.FUNCTION(2) = MINIMUM.LOGON.SECURITY
  907.    IF LIBRARY.FUNCTION(4) > MINIMUM.LOGON.SECURITY THEN _
  908.       LIBRARY.FUNCTION(4) = MINIMUM.LOGON.SECURITY
  909.    IF LIBRARY.DRIVE$ = "" THEN _
  910.       MAIN.FUNCTION(18) = 32767
  911.    WRITE #1,MAIN.MESSAGE.FILE$, _
  912.             MAIN.MESSAGE.BACKUP$, _
  913.             CALLERS.FILE$, _
  914.             COMMENTS.FILE$, _
  915.             MAIN.USER.FILE$, _
  916.             WELCOME.FILE$, _
  917.             NEWUSER.FILE$, _
  918.             DIRECTORY.EXTENTION$, _
  919.             COM.PORT$, _
  920.             BULLETINS.OPTIONAL, _
  921.             USER.INIT.COMMAND$, _
  922.             RTS$, _
  923.             DOS.VERSION, _
  924.             FG, _
  925.             BG, _
  926.             BORDER, _
  927.             RBBS.BAT$, _
  928.             RCTTY.BAT$
  929. 4200  WRITE #1,OMIT.MAIN.DIRECTORY$, _
  930.             FIRST.NAME.PROMPT$, _
  931.             HELP$(3), _
  932.             HELP$(4), _
  933.             HELP$(7), _
  934.             HELP$(9), _
  935.             BULLETIN.MENU$, _
  936.             BULLETIN.PREFIX$, _
  937.             DRIVE.FOR.BULLETINS$, _
  938.             MESSAGE.REMINDER, _
  939.             REQUIRE.NON.ASCII, _
  940.             ASK.EXTENDED.DESC, _
  941.             MAXIMUM.NUMBER.OF.NODES, _
  942.             NETWORK.TYPE, _
  943.             RECYCLE.TO.DOS, _
  944.             MAX.USR.FILE.SIZE.FRM.DEF, _
  945.             MAX.MSG.FILE.SIZE.FRM.DEF!, _
  946.             TRASHCAN.FILE$
  947. 4300  WRITE #1,MINIMUM.LOGON.SECURITY, _
  948.             DEFAULT.SECURITY.LEVEL, _
  949.             SYSOP.SECURITY.LEVEL, _
  950.             FILESEC.FILE$, _
  951.             SYSOP.MENU.SECURITY.LEVEL, _
  952.             CONFMAIL.LIST$, _
  953.             MAXIMUM.VIOLATIONS, _
  954.             SYSOP.FUNCTION(1), _
  955.             SYSOP.FUNCTION(2), _
  956.             SYSOP.FUNCTION(3), _
  957.             SYSOP.FUNCTION(4), _
  958.             SYSOP.FUNCTION(5), _
  959.             SYSOP.FUNCTION(6), _
  960.             SYSOP.FUNCTION(7), _
  961.             PASSWORD.FILE$, _
  962.             MAXIMUM.PASSWORD.CHANGES, _
  963.             MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
  964.             OVERWRITE.SECURITY.LEVEL, _
  965.             DOORS.TERMINAL.TYPE, _
  966.             MAX.PER.DAY
  967. 4400  WRITE #1,MAIN.FUNCTION(1), _
  968.             MAIN.FUNCTION(2), _
  969.             MAIN.FUNCTION(3), _
  970.             MAIN.FUNCTION(4), _
  971.             MAIN.FUNCTION(5), _
  972.             MAIN.FUNCTION(6), _
  973.             MAIN.FUNCTION(7), _
  974.             MAIN.FUNCTION(8), _
  975.             MAIN.FUNCTION(9), _
  976.             MAIN.FUNCTION(10), _
  977.             MAIN.FUNCTION(11), _
  978.             MAIN.FUNCTION(12), _
  979.             MAIN.FUNCTION(13), _
  980.             MAIN.FUNCTION(14), _
  981.             MAIN.FUNCTION(15), _
  982.             MAIN.FUNCTION(16), _
  983.             MAIN.FUNCTION(17), _
  984.             MAIN.FUNCTION(18), _
  985.             MIN.NEWCALLER.BAUD, _
  986.             WAIT.BEFORE.DISCONNECT
  987. 4500  WRITE #1,FILES.FUNCTION(1), _
  988.             FILES.FUNCTION(2), _
  989.             FILES.FUNCTION(3), _
  990.             FILES.FUNCTION(4), _
  991.             FILES.FUNCTION(5), _
  992.             FILES.FUNCTION(6), _
  993.             FILES.FUNCTION(7), _
  994.             FILES.FUNCTION(8), _
  995.             UTILITY.FUNCTION(1), _
  996.             UTILITY.FUNCTION(2), _
  997.             UTILITY.FUNCTION(3), _
  998.             UTILITY.FUNCTION(4), _
  999.             UTILITY.FUNCTION(5), _
  1000.             UTILITY.FUNCTION(6), _
  1001.             UTILITY.FUNCTION(7), _
  1002.             UTILITY.FUNCTION(8), _
  1003.             UTILITY.FUNCTION(9), _
  1004.             UTILITY.FUNCTION(10), _
  1005.             UTILITY.FUNCTION(11), _
  1006.             UTILITY.FUNCTION(12), _
  1007.             GLOBAL.FUNCTION(1), _
  1008.             GLOBAL.FUNCTION(2), _
  1009.             GLOBAL.FUNCTION(3), _
  1010.             GLOBAL.FUNCTION(4), _
  1011.             UPLOAD.TIME.FACTOR!, _
  1012.             COMPUTER.TYPE, _
  1013.             REMIND.PROFILE, _
  1014.             RBBS.NAME$, _
  1015.             COMMANDS.BETWEEN.RINGS, _
  1016.             MNP.SUPPORT, _
  1017.             PAGING.PRINTER.SUPPORT$, _
  1018.             MODEM.INIT.BAUD$
  1019. 4600  WRITE #1,TURN.PRINTER.OFF,_
  1020.             DIRECTORY.PATH$,_
  1021.             MIN.SEC.TO.VIEW, _
  1022.             LIMIT.SEARCH.TO.FMS, _
  1023.             DEFAULT.CATEGORY.CODE$, _
  1024.             DIR.CATEGORY.FILE$, _
  1025.             NEW.FILES.CHECK, _
  1026.             MAX.DESC.LEN, _
  1027.             SHOW.SECTION, _
  1028.             COMMANDS.IN.PROMPT, _
  1029.             NEWUSER.SETS.DEFAULTS, _
  1030.             HELP.PATH$, _
  1031.             HELP.EXTENSION$, _
  1032.             MAIN.COMMANDS$, _
  1033.             FILE.COMMANDS$, _
  1034.             UTIL.COMMANDS$, _
  1035.             GLOBAL.COMMANDS$, _
  1036.             SYSOP.COMMANDS$
  1037. 4700  WRITE #1,RECYCLE.WAIT, _
  1038.             LIBRARY.FUNCTION(1), _
  1039.             LIBRARY.FUNCTION(2), _
  1040.             LIBRARY.FUNCTION(3), _
  1041.             LIBRARY.FUNCTION(4), _
  1042.             LIBRARY.FUNCTION(5), _
  1043.             LIBRARY.FUNCTION(6), _
  1044.             LIBRARY.FUNCTION(7), _
  1045.             LIBRARY.DRIVE$, _
  1046.             LIBRARY.DIRECTORY.PATH$, _
  1047.             LIBRARY.DIRECTORY.EXTENTION$, _
  1048.             LIBRARY.WORK.DISK.PATH$, _
  1049.             LIBRARY.MAX.DISK, _
  1050.             LIBRARY.MAX.DIRECTORY, _
  1051.             LIBRARY.MAX.SUBDIR, _
  1052.             LIBRARY.SUBDIR.PREFIX$, _
  1053.             LIBRARY.ARCHIVE.PATH$, _
  1054.             LIBRARY.ARCHIVE.PROGRAM$, _
  1055.             LIBRARY.COMMANDS$
  1056. 4800  WRITE #1,UPLOAD.PATH$, _
  1057.             FMS.DIRECTORY$, _
  1058.             ANS.MENU$, _
  1059.             REQUIRED.QUESTIONNAIRE$, _
  1060.             REMEMBER.NEW.USERS, _
  1061.             SURVIVE.NOUSER.ROOM, _
  1062.             PROMPT.HASH$, _
  1063.             START.HASH, _
  1064.             LEN.HASH, _
  1065.             PROMPT.INDIV$, _
  1066.             START.INDIV, _
  1067.             LEN.INDIV
  1068. 4850  WRITE #1,BYPASS.MSGS, _
  1069.             MUSIC, _
  1070.             RESTRICT.BY.DATE, _
  1071.             DAYS.TO.WARN, _
  1072.             DAYS.IN.SUBSCRIPTION.PERIOD, _
  1073.             VOICE.TYPE, _                                    ' KG0524
  1074.             RESTRICT.VALID.CMDS, _
  1075.             NEW.USER.DEFAULT.MODE, _
  1076.             NEW.USER.LINE.FEEDS, _
  1077.             NEW.USER.NULLS, _
  1078.             NEW.USER.BELL, _
  1079.             NEW.USER.CASE, _
  1080.             MESSAGES.CAN.GROW, _                           ' KG0524
  1081.             WRAP.CALLERS.FILE$, _
  1082.             REDIRECT.IO.METHOD, _
  1083.             AUTO.UPGRADE.SEC, _                            ' KG0524
  1084.             HALT.ON.ERROR, _
  1085.             NEW.PUBLIC.MSGS.SECURITY, _
  1086.             NEW.PRIVATE.MSGS.SECURITY, _
  1087.             SECURITY.NEEDED.TO.CHANGE.MSGS, _
  1088.             SL.CATEGORIZE.UPLOADS, _
  1089.             BAUDOT, _
  1090.             TIME.TO.DROP.TO.DOS, _
  1091.             EXPIRED.SECURITY, _
  1092.             DTR.DROP.DELAY, _
  1093.             ASK.IDENTITY, _
  1094.             MAX.REG.SEC, _                                  ' KG0524
  1095.             BUFFER.SIZE, _
  1096.             MLCOM, _
  1097.             SHOOT.YOURSELF, _
  1098.             DEFAULT.EXTENSION$, _                           ' KG0524
  1099.             NEW.USER.DEFAULT.PROTOCOL$, _
  1100.             NEW.USER.GRAPHICS$, _
  1101.             NET.MAIL$, _
  1102.             MASTER.DIRECTORY.NAME$, _
  1103.             PROTO.DEF$, _
  1104.             UPCAT.HELP$, _
  1105.             ALWAYS.STREW.TO$, _
  1106.             LAST.NAME.PROMPT$
  1107.       MSB = LSB + 1
  1108.       LINE.CONTROL.REGISTER = LSB + 3
  1109.       MODEM.CONTROL.REGISTER = LSB + 4
  1110.       LINE.STATUS.REGISTER = LSB + 5
  1111.       MODEM.STATUS.REGISTER = LSB + 6
  1112. 4900  WRITE #1,PERSONAL.DRVPATH$, _
  1113.             PERSONAL.DIR$, _
  1114.             PERSONAL.BEGIN, _
  1115.             PERSONAL.LEN, _
  1116.             PERSONAL.PROTOCOL$, _
  1117.             PERSONAL.CONCAT, _
  1118.             PRIVATE.READ.SEC, _
  1119.             PUBLIC.READ.SEC, _
  1120.             SEC.CHANGE.MSG, _
  1121.             KEEP.INIT.BAUD, _
  1122.             MAIN.PUI$, _
  1123.             DEFAULT.ECHOER$, _
  1124.             HOST.ECHO.ON$, _
  1125.             HOST.ECHO.OFF$, _
  1126.             SWITCH.BACK, _
  1127.             DEFAULT.LINE.ACK$, _
  1128.             ALTDIR.EXTENSION$, _
  1129.             DIRECTORY.PREFIX$
  1130. 4950  WRITE #1,SEC.LVL.EXEMPT.FRM.PURGING, _
  1131.             MODEM.INIT.WAIT.TIME, _
  1132.             MODEM.COMMAND.DELAY.TIME, _
  1133.             TURBO.RBBS, _
  1134.             DNLD.SUB, _
  1135.             WILL.SUBDIRS.B.USED, _
  1136.             UPLOAD.TO.SUBDIR, _
  1137.             DOWNLOAD.TO.SUBDIR, _
  1138.             UPLOAD.SUBDIR$, _
  1139.             MIN.OLDCALLER.BAUD, _
  1140.             MAX.WORK.VAR, _                              ' KG0524
  1141.             DISKFULL.GO.OFFLINE, _
  1142.             EXTENDED.LOGGING, _
  1143.             USER.RESET.COMMAND$, _
  1144.             USER.COUNT.RINGS.COMMAND$, _
  1145.             USER.ANSWER.COMMAND$, _
  1146.             USER.GO.OFFHOOK.COMMAND$, _
  1147.             DISK.FOR.DOS$, _
  1148.             DUMB.MODEM, _
  1149.             COMMENTS.AS.MESSAGES, _
  1150.             LSB, _
  1151.             MSB, _
  1152.             LINE.CONTROL.REGISTER, _
  1153.             MODEM.CONTROL.REGISTER, _
  1154.             LINE.STATUS.REGISTER, _
  1155.             MODEM.STATUS.REGISTER
  1156. 4980  WRITE #1,KEEP.TIME.CREDITS, _
  1157.             XON.XOFF, _
  1158.             ALLOW.CALLER.TURBO, _
  1159.             USE.DEVICE.DRIVER$, _
  1160.             PRELOG$, _
  1161.             NEW.USER.QUESTIONNAIRE$, _
  1162.             EPILOG$, _
  1163.             REGISTRATION.PROGRAM$, _
  1164.             QUES.PATH$, _
  1165.             USER.LOCATION$, _
  1166.             USER.INITIALIZE.COMMAND$, _
  1167.             USER.FIRMWARE.CLEAR.CMND$, _
  1168.             USER.FIRMWARE.WRITE.CMND$, _
  1169.             ENFORCE.UPLOAD.DOWNLOAD.RATIOS, _
  1170.             SIZE.OF.STACK, _
  1171.             SECURITY.EXEMPT.FROM.EPILOG, _
  1172.             USE.BASIC.WRITES, _
  1173.             DOSANSI, _
  1174.             ESCAPE.INSECURE, _
  1175.             USE.DIR.ORDER, _
  1176.             ADD.DIR.SECURITY, _
  1177.             MAX.EXTENDED.LINES, _
  1178.             ORIG.COMMANDS$
  1179.       IF MACRO.EXTENSION$ <> "" AND _
  1180.          INSTR(MACRO.EXTENSION$,".") <> 1 THEN _
  1181.          MACRO.EXTENSION$ = "." + MACRO.EXTENSION$
  1182.       WRITE #1,LOGON.MAIL.LEVEL$, _
  1183.             MACRO.DRVPATH$, _
  1184.             MACRO.EXTENSION$, _
  1185.             EMPHASIZE.ON.DEF$, _
  1186.             EMPHASIZE.OFF.DEF$, _
  1187.             FG.1.DEF$, _
  1188.             FG.2.DEF$, _
  1189.             FG.3.DEF$, _
  1190.             FG.4.DEF$, _
  1191.             SECVIO.HLP$, _
  1192.             FOSSIL, _
  1193.             MAX.CARRIER.WAIT, _
  1194.             CALLER.BKGRD, _
  1195.             SMART.TEXT, _
  1196.             TIME.LOCK, _
  1197.             WRITE.BUF.DEF, _
  1198.             SEC.KILL.ANY, _                          ' KG0524
  1199.             DOORS.DEF$, _                            ' KG0524
  1200.             SCREEN.OUT.MSG$, _                       ' KG0524
  1201.             AUTOPAGE.DEF$
  1202.    IF DNLD.SUB <1 OR DNLD.SUB > 99 THEN _
  1203.       GOTO CLOSE.OUT
  1204.    FOR I = 1 TO DNLD.SUB
  1205.       WRITE #1,DNLD$(I)
  1206.    NEXT
  1207.  
  1208. CLOSE.OUT:
  1209. 5000  CLOSE #1
  1210.    LOCATE 13,9
  1211.    PRINT "FINISHED."
  1212.    LOCATE 22,1
  1213.    END
  1214.  
  1215.  
  1216.  
  1217. '
  1218. ' *****************************************************************************
  1219. ' * ERROR EXIT - USER ABORTED PROGRAM                                         *
  1220. ' *****************************************************************************
  1221. '
  1222. USER.ABORT:
  1223.       LOCATE 23,1
  1224.       PRINT "User aborted program - EXECUTION CANCELLED"
  1225.       SYSTEM
  1226. '
  1227. ' *****************************************************************************
  1228. ' * ERROR HANDLER FOR ANY OPEN/READ/WRITE ERRORS                              *
  1229. ' *****************************************************************************
  1230. '
  1231. ERROR.HANDLER:
  1232.    LOCATE 17,10
  1233.    PRINT SPACE$(60);
  1234.    LOCATE 17,10
  1235.    IF ERL = 1000 THEN _
  1236.       PRINT "ERROR: COULD NOT OPEN INPUT FILE - EXECUTION CANCELLED" : _
  1237.       SYSTEM
  1238.    IF ERL =  1010 THEN _
  1239.       LOCATE 16,10 : _
  1240.       PRINT "ERROR READING INPUT FILE - EXECUTION CANCELLED" : _
  1241.       LOCATE 17,10 : _
  1242.       PRINT "(Probably not version "; MID$(VER$,(VERSION-1)*6+1,5);")" : _
  1243.       SYSTEM
  1244.    IF ERL = 3000 THEN _
  1245.       PRINT "ERROR: COULD NOT OPEN OUTPUT FILE - EXECUTION CANCELLED" : _
  1246.       SYSTEM
  1247.    IF ERL >= 4000 AND ERL <= 5000 THEN _
  1248.       PRINT "ERROR: COULD NOT WRITE OUTPUT FILE - EXECUTION CANCELLED" : _
  1249.       SYSTEM
  1250.    PRINT "ERROR ";ERR;" OCCURRED IN LINE ";ERL"; - EXECUTION CANCELLED" : _
  1251.          SYSTEM
  1252.  
  1253.    DATA "           RBBS-PC VERSION 17-2A CONFIGURATION CONVERSION"
  1254.    DATA "Conceived and written by:"
  1255.    DATA "   Doug Azzarito"
  1256.    DATA "   TECHNOLOGY CONSULTANTS of the Palm Beaches, Inc."
  1257.    DATA "   VOICE: (407) 627-9767"
  1258.    DATA "    DATA: (407) 627-6969 627-6862"
  1259.    DATA "                Modified by Ken Goosens."
  1260.    DATA "A limited license is granted to all users of this program"
  1261.    DATA "to use and distribute this program, as long as:"
  1262.    DATA "   1) NO FEE is charged for copying or distributing this program."
  1263.    DATA "   2) This program is NOT distributed in modified form."
  1264.    DATA "   3) The code contained herein is NOT used for any other purpose"
  1265.    DATA "      without obtaining permission from the copyright owner of"
  1266.    DATA "      RBBS-PC version 17-2A."
  1267. '
  1268. ' *****************************************************************************
  1269. ' * STRTOK FUNCTION                                                           *
  1270. ' *****************************************************************************
  1271. '
  1272. FUNCTION StrTok$(Srce$,Delim$)
  1273. STATIC Start%, SaveStr$
  1274.  
  1275.    ' If first call, make a copy of the string.
  1276.    IF Srce$<>"" THEN
  1277.       Start%=1 : SaveStr$=Srce$
  1278.    END IF
  1279.  
  1280.    BegPos%=Start% : Ln%=LEN(SaveStr$)
  1281.    ' Look for start of a token (character that isn't delimiter).
  1282.    WHILE BegPos%<=Ln% AND INSTR(Delim$,MID$(SaveStr$,BegPos%,1))<>0
  1283.       BegPos%=BegPos%+1
  1284.    WEND
  1285.    ' Test for token start found.
  1286.    IF BegPos% > Ln% THEN
  1287.       StrTok$="" : EXIT FUNCTION
  1288.    END IF
  1289.    ' Find the end of the token.
  1290.    EndPos%=BegPos%
  1291.    WHILE EndPos% <= Ln% AND INSTR(Delim$,MID$(SaveStr$,EndPos%,1))=0
  1292.       EndPos%=EndPos%+1
  1293.    WEND
  1294.    StrTok$=MID$(SaveStr$,BegPos%,EndPos%-BegPos%)
  1295.    ' Set starting point for search for next token.
  1296.    Start%=EndPos%
  1297.  
  1298. END FUNCTION
  1299. '
  1300. ' *****************************************************************************
  1301. ' * BOX SUBROUTINE                                                            *
  1302. ' *****************************************************************************
  1303. '
  1304. SUB box (ybox, xbox, boxrows, boxcols, style)
  1305. ' ybox is the screen row of the upper left corner of the box
  1306. ' xbox is the screen column of the upper left corner of the box
  1307. ' boxrows is the number of rows (must be > 1) for the box
  1308. ' boxcols is the number of cols (must be > 1) for the box
  1309. ' style = 1  single line              2 double line
  1310. '         3  double top,single side   4  double side, single top
  1311. '
  1312.    IF style = 0 THEN EXIT SUB
  1313.    SELECT CASE style
  1314.       CASE 1
  1315.          tl$ = "┌": tr$ = "┐": bl$ = "└": br$ = "┘": hl$ = "─": vl$ = "│"
  1316.       CASE 2
  1317.          tl$ = "╔": tr$ = "╗": bl$ = "╚": br$ = "╝": hl$ = "═": vl$ = "║"
  1318.       CASE 3
  1319.          tl$ = "╒": tr$ = "╕": bl$ = "╘": br$ = "╛": hl$ = "═": vl$ = "│"
  1320.       CASE 4
  1321.          tl$ = "╓": tr$ = "╖": bl$ = "╙": br$ = "╜": hl$ = "─": vl$ = "║"
  1322.       CASE ELSE
  1323.          CLS
  1324.          PRINT "SYNTAX ERROR IN box FUNCTION: Invalid style"
  1325.          SYSTEM
  1326.       END SELECT
  1327.    LOCATE ybox, xbox, 0
  1328.    PRINT tl$ + STRING$(boxcols - 2, hl$) + tr$;
  1329.    FOR i! = ybox + 1 TO ybox + boxrows - 2
  1330.       LOCATE i!, xbox
  1331.       PRINT vl$;
  1332.       LOCATE , xbox + boxcols - 1
  1333.       PRINT vl$;
  1334.       NEXT i!
  1335.    LOCATE ybox + boxrows - 1, xbox, 0
  1336.    PRINT bl$ + STRING$(boxcols - 2, hl$) + br$;
  1337. END SUB
  1338.